/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package metodos;

import datos.Datos;
import java.util.ArrayList;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JTextArea;


public class BayesGUIcontroller{
    
    
    private Bayes b;
    private ArrayList<ArrayList<String>> resultado;
    
    public BayesGUIcontroller(Datos data){
        b = new Bayes(data);
        b.determinarPorcentajesClase();
        b.conteo();
        b.conteoPorcentajes();
        b.imprimir();
        resultado = new ArrayList<ArrayList<String>>();
    }
    
    public void actualizarNombreClase(JLabel labelClase){
        labelClase.setText(getB().getDatos().getNombreClase());
    }
    
    public void actualizarValoresClase(JList listaValoresClase){
        listaValoresClase.setListData(getB().getValoresClase().toArray());
    }
    
    public void actualizarListaAtributos(JList listaAtributos){
        listaAtributos.setListData(getB().getTitulos().toArray());
    }
    
    public void actualizarValoresAtributos(JList listaValoresAtributos, int a){
        listaValoresAtributos.setListData(getB().getValoresAtributos().get(a).toArray());
    } 
    
    public void calcular(JTextArea jt, ArrayList<String> al){
        Double aux = 0.0;
        String salida;
        int indice;
        resultado = b.calcular(al);
        
        
        //Redondeo a 2 cifras
        for(int i = 1; i < resultado.size(); i++){
           for(int j = 0; j < resultado.get(i).size(); j++){
               aux = Double.parseDouble(resultado.get(i).get(j));
               aux = Math.rint(aux*100)/100;
               resultado.get(i).set(j, String.valueOf(aux));
           }
        }
        
        indice = resultado.get(0).size() - 1;
        
        for(int i = 0; i < b.getValoresClase().size(); i++){
            salida = "\nPara ";
            salida += b.getValoresClase().get(i);
            salida += ": ";
            aux = Double.parseDouble(resultado.get(i+1).get(indice));
            aux = (aux*100);
            resultado.get(i+1).set(indice, String.valueOf(aux));
            salida += resultado.get(i+1).get(indice)+"%\n";
            jt.append(salida);
        }
    }
    /**
     * @return the b
     */
    public Bayes getB() {
        return b;
    }
    
}
